IF exists(SELECT * FROM dbo.sysobjects WHERE name='fl_VulHulptabel' AND xtype='P') 
BEGIN
	DROP PROCEDURE fl_VulHulptabel
END
GO

CREATE  procedure fl_VulHulptabel 
(@klas varchar(5),
 @ditJaar int,
 @semester int)
as
delete from fl_toetsLlnInvoerHulptabel
-- Berekening vorig jaar
declare @kortDitJaar varchar(2)
declare @kortVorigJaar varchar(2)
declare @vorigJaar int
declare @ditJaartje varchar(4)
set @vorigJaar = @ditJaar - 1
set @kortDitJaar = right(convert(varchar(4),@ditJaar),2)
set @kortVorigJaar = right(convert(varchar(4),@vorigJaar),2)
set @ditJaartje=convert(varchar(4),@ditJaar)

-- Invoer van de namen van de leerlingen en de waarschuwingen vorig schooljaar

insert into fl_toetsLlnInvoerHulptabel(inschrijvingsNr,leerlingNaam,klas,waarschuwingen)
select l.inschrijvingsNr,l.voornaam + ' ' + l.achternaam,l.klas,b.waarschuwing
from leerlingen..leerlingen as l
  left join 
    (select * from studiegegevens..fl_waarschuwingPLakken(@ditJaartje)  
	where jaar = @kortVorigJaar) as b
  on l.inschrijvingsNr = b.inschrijvingsNr
  where l.klas = @klas

-- Invoer van de tekorten met kerstmis met behulp van een cursor

declare @iNr char(7)
declare @vakcode char(2)
if (@semester > 1)
begin
  declare deCursor cursor local for
  select inschrijvingsNr,vakcode
  from studiegegevens..loopbaan
  where (tot1 < 50) 
     and (jaar = @ditJaar) 
        and (klas = @klas)
  order by inschrijvingsNr
  for read only

  open deCursor
  fetch next from deCursor into @iNr, @vakcode
  while (@@fetch_status=0)
    begin
        update fl_toetsLlnInvoerHulptabel  
               set tekortenExKerstmis = tekortenExKerstmis + isNull(@vakcode,'')    
               where inschrijvingsNr = @iNr
        fetch next from deCursor into @iNr, @vakCode
    end
  close deCursor
end
else 
  update fl_toetsLlnInvoerHulptabel 
      set tekortenExKerstmis = ''

-- Invoer van de gegevens uit de toetsVakKenmerken
--update S_kV_iMAXAANTALTAAK en update S_kV_iMAXAANTALTOETS

create  table #vakken(vak char(2))

insert into #vakken(vak)
select distinct vakcode 
   from leraars..ambtsverdeling 
   where klas = @klas

declare deCursor cursor local for
select t.maxTaak,t.maxToets
from #vakken as v
  left join (select * from fl_toetsVakKenmerken
                  where semester = @semester) as t
      on (t.vak = v.vak) 
order by v.vak
for read only

declare @vakVolgNr int
declare @maxTaak int
declare @maxToets int
declare @taak1 int
declare @toets1 int
declare @taak2 int
declare @toets2 int
declare @taak3 int
declare @toets3 int
declare @vak varchar(2)
declare @sqlZin varchar(5000)

open deCursor
set @vakVolgNr = 1
fetch next from deCursor into @maxTaak, @maxToets
while (@@fetch_status=0)
  begin
      set @vak = 'V' + convert(varchar(2),@vakVolgNr)
      set @SQLZin = 'update fl_toetsLlnInvoerHulptabel   ' +
         ' set ' + @vak + 'maxTaak = ''' 
		+ convert(varchar(3),@maxTaak) + '''' +
	 ' set ' + @vak + 'maxToets = ''' 
		+ convert(varchar(3),@maxToets) + ''''

      execute(@SQLZin)
      set @vakVolgNr = @vakVolgNr + 1
      fetch next from deCursor into @maxTaak, @maxToets
  end   
close deCursor
deallocate deCursor

-- Invoer van de gegevens uit de inschrijvingstabel
--update S_kV_iAANTALTAAK en update S_kV_iAANTALTOETS

declare deCursor cursor local for
select t1.inschrijvingsNr,
              t1.Taak,t1.Toets, 
              t2.Taak,t2.Toets,
              t3.Taak,t3.Toets
from #vakken as v
  left join (select * from fl_toetsLlnInschrijving
                  where periode = 1 and semester = @semester) as t1
      on (t1.vak = v.vak) 
  left join (select * from fl_toetsLlnInschrijving
                  where periode = 2 and semester = @semester) as t2
      on (t2.vak = v.vak) 
  left join (select * from fl_toetsLlnInschrijving
                  where periode = 3 and semester = @semester) as t3
      on (t3.vak = v.vak) 
order by v.vak
for read only

open deCursor
set @vakVolgNr = 1
fetch next from deCursor into @iNr,@Taak1, @Toets1,
                              @Taak2, @Toets2,
                              @Taak3, @Toets3
while (@@fetch_status=0)
  begin
      set @vak = 'V' + convert(varchar(2),@vakVolgNr)
      set @SQLZin = 'update fl_toetsLlnInvoerHulptabel   ' +
      ' set ' + @vak + 'Taak1 = ''' + convert(varchar(3),@Taak1) + '''' + 
      ' set ' + @vak + 'Taak2 = ''' + convert(varchar(3),@Taak2) + '''' + 
      ' set ' + @vak + 'Taak1 = ''' + convert(varchar(3),@Taak3) + '''' + 
      ' set ' + @vak + 'Toets1 = ''' + convert(varchar(3),@Toets1) + '''' + 
      ' set ' + @vak + 'Toets2 = ''' + convert(varchar(3),@Toets2) + '''' + 
      ' set ' + @vak + 'Toets3 = ''' + convert(varchar(3),@Toets3) + '''' 

      execute(@SQLZin)
      set @vakVolgNr = @vakVolgNr + 1
      fetch next from deCursor into @iNr,@Taak1, @Toets1,
                           @Taak2, @Toets2,
                           @Taak3, @Toets3
  end   
 
close deCursor
deallocate deCursor